home *** CD-ROM | disk | FTP | other *** search
- Fastgraph FAQ, last updated February 6, 1995
-
- Introduction:
-
- Fastgraph is a programmer's graphics library commonly used for writing games,
- but useful for a variety of graphics applications. Fastgraph was written by
- Ted Gruber and is supported by Ted and Diana Gruber of Ted Gruber Software. It
- is available through mail order from the Coriolis Group, which may be
- contacted at: 1-800-410-0192; outside the U.S. call (602) 483-0192; the order
- fax line is (602) 483-0193.
-
- For information and technical support, please do not call the Coriolis Group.
- Instead, contact Ted Gruber Software directly at:
-
- Ted Gruber Software (702) 735-1980 (voice)
- P.O. Box 13408 (702) 735-4603 (fax)
- Las Vegas, NV 89112 (702) 796-7134 (BBS)
-
- Email: 72000.1642@compuserve.com
- ftp: ftp@accessnv.com
-
- Frequently asked questions:
-
- Q. What is a graphics library?
- A. A graphics library is a collection of general purpose functions which may
- be linked into your program. The purpose of Fastgraph is to give you complete
- control of the video environment, including initializing video memory,
- manipulating it, displaying images on the screen, changing colors, and so on.
-
- Q. What is the difference between a graphics library and a game engine?
- A. Game engines are usually specific to a particular genre of game and provide
- medium level functions such as collision detection. A graphics library is
- general purpose low-level functions which can be used in many different kinds
- of programs.
-
- Q. How long has Fastgraph been around?
- A. Ted started writing Fastgraph in 1987, and it has been under constant
- construction ever since. Diana used Fastgraph to write her first game in 1987.
-
- Q. How fast is Fastgraph?
- A. It's fast.
-
- Q. What games have been written with Fastgraph?
- A. We do not have exact information on this, but the short answer is LOTS.
- Many commercial and shareware games have been written with Fastgraph,
- including arcade games, adventure games, puzzle games, card games, RPG's, and
- so on. For some sample shareware games, call our bbs at (702) 796-7134 or
- check our ftp site at ftp.accessnv.com.
-
- Q. Are there any requirements for releasing a game with Fastgraph?
-
- A. We only ask that you do not release public domain programs using
- Fastgraph. Please copyright your software, in your name or in your company's
- name. You can do this by simply putting "copyright 1995 John Doe" on your
- software. (For more information consult an attorney or get a good book on
- the subject.) This is for your protection as well as ours. Your software is
- valuable, you should claim your copyright. We also recommend you register
- your copyright as appropriate, but that is up to you.
-
- Otherwise, there are no restrictions on the distribution of programs written
- with Fastgraph. There are no royalties or license fees, and you are not
- required to mention that you used Fastgraph to write your game (although we
- think it is nice if you do).
-
- Q. Why are you removing the GIF functions from Fastgraph?
- A. Both Unisys and and IBM are claiming patents on the LZW technology, which
- is the cornerstone of GIF file compression. Now Unisys is requiring a royalty
- on any program that compresses or decompresses GIF files. If you write a
- program that uses Fastgraph to read or write a GIF file, you could owe
- royalties to Unisys. We are opposed to paying royalties to Unisys. We are
- opposed to software patents in general. We recommend you avoid using the GIF
- functions.
-
- Q. What is the current version number?
- A. We are currently shipping Fastgraph 4.02.
-
- Q. How much does it cost?
- A. Fastgraph 4.02 costs $249 with no royalties or license fees.
-
- Q. Does that include source code?
- A. No. Source code is extra. Call the TGS office for information about source
- code pricing.
-
- Q. How much does it cost to upgrade?
- A. You can upgrade from 3.x to 4.02 for $69 plus shipping. That includes a new
- manual (approximately 750 pages).
-
- Q. What is Fastgraph/Fonts?
- A. Fastgraph/Fonts is a Fastgraph add-on product providing 40 bitmapped fonts
- and the code to display them, as well as a font editor and a conversion
- program to use TrueType fonts with Fastgraph. The Fastgraph Font editor was
- written by Steve Hodsdon.
-
- Q. What is Fastgraph/Image?
- A. Fastgraph/Image is a file resource manager. You can stuff lots of small
- files into one binary file, sometimes referred to as a library file. It comes
- with a library manager to conveniently add files to the resource file. The
- resource file is indexed for quick access.
-
- Q. Is Fastgraph required to use the Fonts and Image products?
- A. Yes.
-
- Q. What do the Fonts and Image products cost?
- A. Fastgraph/Fonts costs $69 and Fastgraph/Image costs $69.
-
- Q. Are there any package deals?
- A. If you already have Fastgraph, you can buy the Fonts and Image products
- together for $118. That saves you $20. If you want to buy all three products,
- Fastgraph, Fastgraph/Fonts and Fastgraph/Image, we call that the Fastgraph
- Power Pack and sell it for $359.
-
- Q. What is Fastgraph/Light?
- A. Fastgraph/Light is the shareware version of Fastgraph.
-
- Q. What is the difference between Fastgraph/Light and Fastgraph?
- A. The biggest difference is the TSR driver, called FGDRIVER.EXE, which must
- be loaded into memory before any programs linked with Fastgraph/Light may be
- run. Fastgraph/Light supports real mode only, while Fastgraph includes
- libraries for real mode, 16-bit protected mode, and 32-bit protected mode.
- Also, there are several functions missing from the Light version, including
- the functions which require floating point (world space coordinates and
- stroked character fonts) and the GIF functions, which are going to be removed
- from Fastgraph soon as well.
-
- Q. Do Fastgraph/Light users get documentation and technical support?
- A. The documentation is archived and distributed online (or on disk) with
- Fastgraph/Light. Everybody gets technical support.
-
- Q. What is Fastgraph/Help?
- A. Fastgraph/Help is a hypertext help system that may be used as a standalone
- program or a tsr. You may highlight Fastgraph functions in your code and press
- a hotkey combination, and you will get an explanation of the function and the
- parameters that are passed to it.
-
- Q. Did you write Fastgraph/Help?
- A. No. Mike Stephenson wrote it. We paid him for it and provide it to you for
- free.
-
- Q. Has anybody else helped write parts of Fastgraph?
- A. Randy Dryburgh originally wrote parts of Fastgraph/Fonts. John Wagner wrote
- the original Fastgraph/Image. Steve Hodson wrote the Fastgraph font editor and
- the TrueType conversion program.
-
- Q. What languages was Fastgraph written in?
- A. All of Fastgraph is written in assembly language, except for the few
- functions which expect floating point parameters. Those are written in the
- language of the supported compiler.
-
- Q. What languages does Fastgraph support?
- A. Fastgraph supports C/C++, Fortran, Basic, Pascal, and ASM. Some programmers
- have found ways to use Fastgraph with other languages, such as FoxPro and
- Turbo Prolog, but we do not guarantee support of those languages and cannot
- offer technical support for them.
-
- Q. What compilers does Fastgraph support?
- A. Borland C++ (version 2.0 or later)
- Borland Pascal (version 7.0 or later)
- MetaWare High C/C++ (version 3.0 or later)
- Microsoft BASIC PDS (version 7.0 or 7.1)
- Microsoft C/C++ (version 5.1 or later)
- Microsoft FORTRAN (version 4.0 or later)
- Microsoft FORTRAN PowerStation (version 1.0 or later)
- Microsoft QuickBASIC (version 4.0 or later)
- Microsoft QuickC (version 2.0 or later)
- Microsoft Visual Basic for DOS (version 1.0 or later)
- Microsoft Visual C++ (version 1.0 or later)
- Microsoft Visual C++ 32-bit Edition (version 1.0 or later)
- Power C (version 2.0 or later)
- Turbo C (version 2.0 or later)
- Turbo C++ (version 1.0 or later)
- Turbo Pascal (version 6.0 or later)
- Watcom C/C++ (version 9.5 or later)
- Watcom C32 for DOS (version 9.5 or later)
- Zortech C++ (version 3.0 or later)
-
- Q. What 32-bit DOS extenders does Fastgraph support?
- A. Borland PowerPack for DOS
- DOSXMSF (Fortran PowerStation)
- Phar Lap TNT Dos-Extender SDK
- Phar Lap TNT Dos-Extender Lite
- Rational Systems DOS/4G
- Rational Systems DOS/4GW
- Rational Systems DOS/4GW Professional
-
- Q. What 16-bit DOS extenders does Fastgraph support?
- Borland Pascal 7 (built-in DPMI extender)
- Borland PowerPack for DOS
- Phar Lap 286|Dos-Extender SDK
- Phar Lap 286|Dos-Extender Lite
- Rational Systems DOS/16M
-
- Q. What video modes does Fastgraph support?
- A.
-
- Mode No. of Supported Supported
- No. Type Resolution Colors Adapters Displays
-
- 0 T 40 x 25 16/8 CGA,EGA,VGA,MCGA,SVGA RGB,ECD,VGA,SVGA
- 1 T 40 x 25 16/8 CGA,EGA,VGA,MCGA,SVGA RGB,ECD,VGA,SVGA
- 2 T 80 x 25 16/8 CGA,EGA,VGA,MCGA,SVGA RGB,ECD,VGA,SVGA
- 3 T 80 x 25 16/8 CGA,EGA,VGA,MCGA,SVGA RGB,ECD,VGA,SVGA
- 4 G 320 x 200 4 CGA,EGA,VGA,MCGA,SVGA RGB,ECD,VGA,SVGA
- 5 G 320 x 200 4 CGA,EGA,VGA,MCGA,SVGA RGB,ECD,VGA,SVGA
- 6 G 640 x 200 2/16 CGA,EGA,VGA,MCGA,SVGA RGB,ECD,VGA,SVGA
- 7 T 80 x 25 b/w MDA,HGC,EGA,VGA,SVGA Monochrome
- 9 G 320 x 200 16 Tandy 1000,PCjr RGB
- 11 G 720 x 348 b/w HGC Monochrome
- 12 G 320 x 200 b/w HGC Monochrome
- 13 G 320 x 200 16 EGA,VGA,SVGA RGB,ECD,VGA,SVGA
- 14 G 640 x 200 16 EGA,VGA,SVGA RGB,ECD,VGA,SVGA
- 15 G 640 x 350 b/w EGA,VGA,SVGA Mono,VGA,SVGA
- 16 G 640 x 350 16/64 EGA,VGA,SVGA ECD,VGA,SVGA
- 17 G 640 x 480 2/256K VGA,MCGA,SVGA VGA,SVGA
- 18 G 640 x 480 16/256K VGA,SVGA VGA,SVGA
- 19 G 320 x 200 256/256K VGA,MCGA,SVGA VGA,SVGA
- 20 G 320 x 200 256/256K VGA,SVGA VGA,SVGA
- 21 G 320 x 400 256/256K VGA,SVGA VGA,SVGA
- 22 G 320 x 240 256/256K VGA,SVGA VGA,SVGA
- 23 G 320 x 480 256/256K VGA,SVGA VGA,SVGA
- 24 G 640 x 400 256/256K SVGA SVGA
- 25 G 640 x 480 256/256K SVGA SVGA
- 26 G 800 x 600 256/256K SVGA SVGA
- 27 G 1024 x 768 256/256K SVGA SVGA
- 28 G 800 x 600 16/256K SVGA SVGA
- 29 G 1024 x 768 16/256K SVGA SVGA
-
- Q. What SVGA chipsets does Fastgraph support?
- A. Ahead "A" type
- Ahead "B" type
- ATI 18800
- ATI 18800-1
- ATI 28800
- ATI 38800 (mach8)
- ATI 68800 (mach32)
- ATI 88800 (mach64)
- Avance Logic 2000 series
- Chips & Technologies 82c451/455/456
- Chips & Technologies 82c452
- Chips & Technologies 82c453
- Cirrus Logic 5400 series
- Cirrus Logic 6400 series
- Genoa 6000 series
- NCR 77C22/77C32
- Oak OTI-067
- Oak OTI-077
- Oak OTI-087
- Paradise PVGA1a
- Paradise WD90C00/WD90C10
- Paradise WD90C11/WD90C30/WD90C31/WD90C33
- S3
- Trident 8800
- Trident 8900/9000
- Tseng ET3000
- Tseng ET4000
- Video7
- VESA
-
- Q. Are any chipsets problematic?
- A. Some chipsets, notably those in laptops, sometimes fail the autodetection.
- Since it is still possible to initialize those chipsets, we recommend you give
- your users some kind of manual override if the autodetection fails.
-
- Q. Are any video cards problematic?
- A. We've found problems supporting the Diamond Viper card (and so have other
- programmers). At this time, that video card is supported through VESA only.
-
- Q. What file formats does Fastgraph support?
- A. Fastgraph supports reading and writing PCX, GIF, and RLE files, and you can
- read (display) Autodesk Animator FLI/FLC files. We are planning to drop GIF
- support in the very near future because of the Unisys royalties.
-
- Q. Are you going to replace GIF support with PNG support?
- A. Yes!
-
- Q. What is PNG anyway?
- A. PNG is a major advance over the GIF format. It retains GIF's strength as a
- compressed, universal, portable format for 256-color images, and adds the
- capability of true color support with lossless compression missing from GIF.
- Thus by converting, you will not only be helping get the computer graphics
- community out from under the LZW patent, but you will be migrating your image
- collections to a new format that encompases both color-mapped and true color
- images. PNG has a simple, clear specification and comes with free sample
- encoding and decoding reference source code to enable developers to easily
- incorporate PNG support in their applications. PNG's lossless compression
- method has been thoroughly researched and judged free from patent problems.
- PNGs feature set allows the conversion of all GIF files.
-
- Q. Are you going to do a Windows version of Fastgraph?
- A. We're working on it!
-
- Q. Does Fastgraph support sound cards?
- A. No. You need a sound and music library for that, such as the WORX toolkit
- from Mystic Software, the Sound Operating System by HMI, Digpak/Midpak by the
- Audio Solution, or the DiamondWare Sound Toolkit by MVP Software.
-
- Q. Does Fastgraph support horizontal scrolling?
- A. Not directly, but there are ways to do it. For an explanation, see Diana's
- book, Action Arcade Adventure Set, published by the Coriolis Group.
-
- Q. Are Ted and Diana related?
- A. They are married.
-
- Q. How come when I leave Ted email on CompuServe or the Internet, Diana
- answers it?
- A. Ted is "modem impaired".
-
- Q. Can you tell me a little more about that A.A.A.S. book?
- A. The book documents a game engine for a side-scroller game. It includes the
- various editors including a level editor, sprite editor and palette manager,
- as well as code for smooth scrolling and sprite animation.
-
- Q. Is there a Fastgraph FTP site?
- A. Yes. You can get Fastgraph files, including the shareware version, the
- documentation, and lots of examples and code from ftp.accessnv.com.
-
- Q. So, briefly, what functions are in Fastgraph?
- A. See the summary of Fastgraph functions below.
-
- --------------------------------------------------------------------------
- Summary of Fastgraph 4.0 functions
- --------------------------------------------------------------------------
-
- Video initialization
- --------------------
- fg_automode determine which available video mode offers the highest
- resolution and number of colors
- fg_bestmode choose the best video mode given resolution and video page
- requirements
- fg_cursor turn the text mode cursor on or off
- fg_egacheck return information about the active EGA or VGA adapter and
- display
- fg_getlines get the number of text rows per video page
- fg_getmode return the current video mode number
- fg_initpm initialize Fastgraph's protected mode kernel
- fg_reset erase the screen, restoring screen attributes if ANSI.SYS
- is loaded
- fg_setlines in EGA/VGA/SVGA text modes, establish 25, 43, or 50 line mode
- fg_setmode establish a video mode and initialize Fastgraph
- fg_svgainit autodetect the SVGA chipset (or VESA) and initialize
- Fastgraph's SVGA kernel
- fg_testmode determine whether or not a video mode is available on the
- system
-
- Coordinate systems
- ------------------
- fg_getmaxx get the maximum x coordinate in screen space
- fg_getmaxy get the maximum y coordinate in screen space
- fg_getview return current viewport extremes
- fg_getworld determine the current limits of the world space coordinate
- system
- fg_initw initialize the world space coordinate system
- fg_setview define viewport extremes and position
- fg_setworld define the floating point world space coordinate system
- fg_xalpha translate screen space x coordinate to character space column
- fg_xconvert translate character space column to screen space x coordinate
- fg_xscreen translate world space x coordinate to screen space x coordinate
- fg_xview translate horizontal viewport coordinate to screen space
- fg_xworld translate screen space x coordinate to world space x coordinate
- fg_yalpha translate screen space y coordinate to character space row
- fg_yconvert translate character space row to screen space y coordinate
- fg_yscreen translate world space y coordinate to screen space y coordinate
- fg_yview translate vertical viewport coordinate to screen space
- fg_yworld translate screen space y coordinate to world space y coordinate
-
- Colors and palettes
- -------------------
- fg_colors return number of colors available in the current video mode
- fg_defcolor assign a color value to a virtual color index
- fg_getcolor get the current color index (graphics modes) or display
- attributes (text modes)
- fg_getdacs get the RGB components of a block of DAC registers
- fg_getindex get the color value assigned to a virtual color index
- fg_getrgb get the RGB components of a specified DAC register
- fg_maprgb map six-bit RGB components to a 16-color palette value
- fg_palette assign a color value to a palette
- fg_palettes define 16 palette register values
- fg_setattr establish display attributes in text modes
- fg_setcolor establish the current color index
- fg_setdacs specify RGB components of a block of DAC registers
- fg_setrgb define the RGB value of a palette or video DAC register
-
- Graphics fundamentals
- ---------------------
- fg_box draw a hollow rectangle
- fg_boxdepth specify the outline size of a hollow rectangle
- fg_boxw draw a hollow rectangle in world space
- fg_boxx draw a hollow rectangle in XOR mode
- fg_boxxw draw a hollow rectangle in XOR mode in world space
- fg_circle draw a hollow circle
- fg_circlef draw a filled circle
- fg_circlefw draw a filled circle in world space
- fg_circlew draw a hollow circle in world space
- fg_clprect draw a clipped rectangle
- fg_clprectw draw a clipped rectangle in world space
- fg_dash draw a dashed line
- fg_dashrel draw a dashed line relative to current position
- fg_dashrw draw a relative dashed line in world space
- fg_dashw draw a dashed line in world space
- fg_draw draw a line
- fg_drawrel draw a line relative to the current position
- fg_drawrelx draw a relative XOR line
- fg_drawrw draw a relative line in world space
- fg_drawrxw draw a relative XOR line in world space
- fg_draww draw a line in world space
- fg_drawx draw an XOR line
- fg_drawxw draw an XOR line in world space
- fg_drect draw a dithered rectangle
- fg_drectw draw a dithered rectangle in world space
- fg_ellipse draw an ellipse
- fg_ellipsef draw a filled ellipse
- fg_ellipsew draw an ellipse in world space
- fg_ellipsfw draw a filled ellipse in world space
- fg_erase clear the active video page
- fg_fillpage fill active video page with current color
- fg_flood like fg_paint but observes the clipping limits
- fg_floodw like fg_paintw but observes the clipping limits
- fg_getclip return current clipping limits
- fg_getpixel get the color value of specified pixel
- fg_getxbox return fg_box left and right edge width
- fg_getxpos get screen space x coordinate of graphics cursor
- fg_getybox return fg_box top and bottom edge width
- fg_getypos get the screen space y coordinate of graphics cursor
- fg_inside check if a specified point is inside a convex polygon
- fg_move position the graphics cursor
- fg_moverel position the graphics cursor relative to current position
- fg_moverw position the graphics cursor, relative, in world space
- fg_movew position the graphics cursor in world space
- fg_paint fast flood fill of any closed area, including an area with
- holes
- fg_paintw world space version of fg_paint
- fg_point draw a point
- fg_pointw draw a point in world space
- fg_pointx draw a point in XOR mode
- fg_pointxw draw a point in XOR mode in world space
- fg_polyedge specify fg_polyfill right and bottom edge inclusion
- fg_polyfill draw a filled convex polygon
- fg_polygon draw an unfilled polygon
- fg_polygonw draw an unfilled polygon in world space
- fg_polyline draw an unfilled polygon from one vertex array
- fg_polyoff define polygon offsets for fg_polyfill and fg_polyline
- fg_rect draw a solid rectangle in screen space or character space
- fg_rectw draw a solid rectangle in world space
- fg_setclip establish limits of clipping region for primitives and
- bitmapped images
- fg_setclipw world space version of fg_setclip
-
- Character display
- -----------------
- fg_chgattr change display attribute for existing text in text modes
- fg_chgtext change text while preserving the display attributes in text
- modes
- fg_fontsize enable 8x8, 8x14, or 8x16 ROM font (VGA/SVGA only)
- fg_getattr get the display attribute of a given character cell in text
- modes
- fg_getchar get the character value of a given character cell in text modes
- fg_getxjust return fg_print and fg_printc horizontal justification setting
- fg_getyjust return fg_print and fg_printc vertical justification setting
- fg_justify define justification settings for fg_print
- fg_locate define row and column for character display
- fg_print display hardware characters in screen space
- fg_printc version of fg_print that performs clipping
- fg_setangle define the orientation of software (stroked) characters
- fg_setratio define the aspect ratio for software characters
- fg_setsize define the height of software characters in screen space
- fg_setsizew define the height of software characters in world space
- fg_swchar display software (stroked) characters
- fg_swlength compute the length of a string of software characters
- fg_swtext display software characters
- fg_text display hardware (ROM font) characters
- fg_textc version of fg_text that supports clipping
- fg_where return the text cursor position
-
- Video page management
- ---------------------
- fg_allocate create a virtual page in conventional memory
- fg_alloccms create a logical page in conventional memory
- fg_allocems create a logical page in expanded memory
- fg_allocxms create a logical page in extended memory
- fg_findpage find an available page number for virtual/logical pages
- fg_freepage release a virtual or logical page
- fg_getaddr get the segment address of the active video page
- fg_getentry get address and type of a physical, virtual or logical page
- fg_getpage get the active video page number
- fg_getvpage get the number of the visual video page
- fg_initems initialize expanded memory (EMS)
- fg_initxms initialize extended memory (XMS)
- fg_pagesize return video page size in bytes
- fg_resize change the size of a video page (use with fg_pan)
- fg_setentry set address and type of a physical, virtual or logical page
- fg_setpage establish the active video page
- fg_setvpage establish the visual video page
-
- Virtual buffer management
- -------------------------
- fg_vbaddr return address of a virtual buffer
- fg_vballoc create a virtual buffer (allocate memory internally)
- fg_vbclose close the active virtual buffer
- fg_vbcopy copy rectangular region from one virtual buffer to another
- fg_vbcut copy rectangular region from active video page to virtual buffer
- fg_vbdefine create a virtual buffer (from previously allocated memory)
- fg_vbfree release virtual buffer memory allocated with fg_vballoc
- fg_vbhandle return handle of the active virtual buffer
- fg_vbinit initialize Fastgraph's virtual buffer environment
- fg_vbopen make an existing virtual buffer the active virtual buffer
- fg_vbpaste copy rectangular region from virtual buffer to active video page
- fg_vbtcxfer version of fg_vbpaste that supports transparent colors
- fg_vbundef release a virtual buffer handle
-
- Bitmapped image management
- --------------------------
- fg_clipmap version of fg_drawmap that performs clipping
- fg_clipmask draw a clipped masking map
- fg_clpimage draw a clipped mode-specific bitmap
- fg_display display a pixel run map
- fg_displayp display a packed pixel run map
- fg_drawmap draw a mode-independent bitmap
- fg_drawmask draw a masking map
- fg_drwimage draw a lightning-fast mode-specific bitmap
- fg_flipmask draw an inverted masking map
- fg_flpimage draw an inverted mode-specific bitmap
- fg_getimage retrieve an image as a mode-specific bitmap
- fg_getmap retrieve an image as a mode-independent bitmap
- fg_imagesiz calculate the number of bytes required for mode-specific
- bitmap storage
- fg_invert invert orientation of a bitmapped image array
- fg_pack translate "one pixel per byte" bitmap to mode-specific format
- fg_putimage like fg_drwimage but doesn't check for transparent pixels
- fg_revimage display a reversed mode-specific bitmap
- fg_revmask display a reversed masking map
- fg_scale scale a bitmapped image
- fg_shear shear a bitmapped image
- fg_unpack translate mode-specific bitmap to "one pixel per byte" format
-
- Image file routines
- -------------------
- fg_dispfile display a pixel run file, packed or unpacked
- fg_flicdone close an FLI or FLC file
- fg_flichead read an FLI or FLC file header
- fg_flicmode determine optimal video mode for an FLI or FLC file
- fg_flicopen open an FLI or FLC file
- fg_flicplay play one or more frames from an FLI or FLC file
- fg_flicsize return FLI or FLC image dimensions
- fg_flicskip advance one or more frames in an FLI or FLC file
- fg_gifhead read a GIF file global header and first local header
- fg_gifmode determine optimal video mode for a GIF file
- fg_gifpal retrieve palette information from a GIF file
- fg_gifrange return GIF image dimensions
- fg_imagebuf define the address and size of the image file buffer
- fg_loadpcx load a PCX image into a virtual buffer
- fg_makegif create a GIF file from a rectangular region of the active
- video page
- fg_makepcx create a PCX file from a rectangular region of the active
- video page
- fg_makeppr create a PPR file from a rectangular region of the active
- video page
- fg_makespr create an SPR file from a rectangular region of the active
- video page
- fg_pattern define dither patterns for pixel run maps
- fg_pcxhead read a PCX file header into a 128-byte buffer
- fg_pcxmode determine the optimal mode for displaying a PCX file
- fg_pcxpal retrieve palette information from a PCX file
- fg_pcxrange return PCX image dimensions
- fg_showflic play an FLI or FLC file
- fg_showgif display a GIF file
- fg_showpcx display a PCX file
- fg_showppr display a packed pixel run (PPR) file
- fg_showspr display a standard pixel run (SPR) file (RLE)
-
- Block transfer routines
- -----------------------
- fg_copypage copy an entire physical, virtual, or logical page
- fg_getblock transfer rectangular region from video memory to RAM
- fg_gethpage get the number of the current "hidden" video page
- fg_putblock transfer rectangular region from RAM to video memory
- fg_restore fast rectangular area copy from hidden to visual page
- fg_restorew world space version of fg_restore
- fg_save fast rectangular area copy from visual to hidden page
- fg_savew world space version of fg_save
- fg_sethpage establish the hidden video page
- fg_tcdefine define transparent color number for fg_tcxfer
- fg_tcmask define transparent colors for fg_tcxfer
- fg_tcxfer transfer rectangular area with transparent colors
- fg_transfer fast rectangular region copy from any page to any page (bitblt)
-
- Special effects
- ---------------
- fg_fadein copy hidden to visual page in small, random increments
- fg_fadeout erase the visual page in small, random increments
- fg_pan change the screen origin for full-screen four-directional
- smooth scrolling
- fg_panw world space version of fg_pan
- fg_scroll smooth vertical scrolling of rectangular area
- fg_split enable or disable a split screen environment
-
- Keyboard control
- ----------------
- fg_capslock turn the CapsLock key on or off
- fg_getkey wait for a keystroke or retrieve the next value from the
- keystroke buffer
- fg_intkey get the next entry from BIOS keyboard buffer if it is not empty
- fg_kbinit enable or disable the low-level keyboard handler
- fg_kblast return scan code of most recent keypress
- fg_kbreset reset Fastgraph's low-level keyboard handler
- fg_kbtest determine if a key is now pressed or released
- fg_numlock get the state of the NumLock key
- fg_scrlock get the state of the ScrollLock key
- fg_setcaps turn the CapsLock key on or off
- fg_setnum turn the NumLock key on or off
- fg_waitkey wait for any keystroke
-
- Mouse management
- ----------------
- fg_mouse256 define 256-color mouse cursor
- fg_mousebut get information about the mouse - were buttons pressed, and
- where?
- fg_mousecur define the appearance of the mouse cursor in text modes
- fg_mousefin unhook Fastgraph's XVGA or SVGA mouse handler
- fg_mouseini initialize the mouse
- fg_mouselim define limits the mouse movement
- fg_mousemov position the mouse cursor
- fg_mousepos get the current mouse position and button status
- fg_mouseptr define shape and appearance of mouse cursor in graphics modes
- fg_mousespd control the speed of mouse cursor relative to the speed of the
- mouse
- fg_mousevis make the mouse cursor visible or invisible
-
- Joystick support
- ----------------
- fg_button get a joystick's button status
- fg_getxjoy get the horizontal position of the specified joystick
- fg_getyjoy get the vertical position of the specified joystick
- fg_initjoy initialize either joystick
- fg_intjoy return keyboard codes analogous to joystick position and
- button status
-
- Sound effects and music
- -----------------------
- fg_hush immediately stop any asynchronous sound or music
- fg_hushnext stop asynchronous sound or music after the current iteration
- fg_music play a sequence of musical notes
- fg_musicb play asynchronous music (background music)
- fg_playing determine whether there is any asynchronous sound in progress
- fg_quiet stop continuous sound
- fg_resume after suspending asynchronous music, continue the music
- fg_sound produce a tone of specified frequency and duration
- fg_sounds play a series of tones, concurrent with other activity
- fg_suspend suspend asynchronous sound (see fg_resume)
- fg_voice produce sound on TI sound chip (as in Tandy 1000)
- fg_voices play a series of tones on TI sound chip, concurrent with other
- activity
-
- Timing
- ------
- fg_getclock get the number of clock ticks since midnight
- fg_measure benchmark the system speed to determine delay units for fg_stall
- fg_stall stall for a given number of delay units (see fg_measure)
- fg_waitfor delay a specified number of clock ticks (18.2 per second)
-
- Miscellaneous
- -------------
- fg_getbanks return current SVGA read and write bank numbers
- fg_memavail determine the amount of conventional memory available to DOS
- fg_memory return the amount of video memory present in kilobytes
- fg_setbanks define SVGA read and write bank numbers
- fg_setfunc specify the logical operation in EGA/VGA modes (XOR/OR/AND)
- fg_svgaver return Fastgraph SVGA kernel version number
- fg_version return Fastgraph version number
- fg_vgastate save or restore the internal VGA state
- fg_waitvr specify if functions wait internally for vertical retrace
-